package com.itcast.bulls.stock.quote.service;

import com.itcast.bulls.stock.entity.product.TradeStock;
import org.springframework.scheduling.annotation.Scheduled;

import javax.annotation.PostConstruct;
import java.util.List;

public interface IStockQuoteService {
    /**
     * 获取所有有效的股票产品
     * @return
     */
    List<TradeStock> findAllValidStocks();

    /**
     * 获取股票产品的行情源数据
     * @param stock
     * @param closeDiffMins
     */
    void fetchStockQuote(TradeStock stock, int closeDiffMins);

    /**
     * 初始化开盘价缓存信息，从Redis缓存中加载数据
     */
    @PostConstruct
    void initOpenPriceCache();

    /**
     * 定时重置开盘价缓存信息，确保当天的开盘价能够正常记录(每天凌晨1点执行，1小时缓存时间，在1点到2点每10分钟执行一次）
     */
    @Scheduled(cron = "0 0/10 1 * * ?") //秒 分钟 小时
    void scheduleRestOpenPriceCache();

    /**
     * 定时持久化行情缓存数据（每分钟执行一次
     */

    @Scheduled(cron = "0 0/1 * * * ?")
    void schedulePersistCache();
}
